/* eslint-disable radix */
/**
 * 去除空格
 * @param  {str}
 * @param  {type}
 *       type:  1-所有空格  2-前后空格  3-前空格 4-后空格
 * @return {String}
 */
export function trim(str, type) {
  type = type || 1
  switch (type) {
    case 1:
      return str.replace(/\s+/g, '')
    case 2:
      return str.replace(/(^\s*)|(\s*$)/g, '')
    case 3:
      return str.replace(/(^\s*)/g, '')
    case 4:
      return str.replace(/(\s*$)/g, '')
    default:
      return str
  }
}

/**
 * @param  {str}
 * @param  {type}
 *       type:  1:首字母大写  2：首页母小写  3：大小写转换  4：全部大写  5：全部小写
 * @return {String}
 */
export function changeCase(str, type) {
  type = type || 4
  switch (type) {
    case 1:
      return str.replace(/\b\w+\b/g, (word) => word.substring(0, 1).toUpperCase() + word.substring(1).toLowerCase())
    case 2:
      return str.replace(/\b\w+\b/g, (word) => word.substring(0, 1).toLowerCase() + word.substring(1).toUpperCase())
    case 3:
      return str.split('').map((word) => {
        if (/[a-z]/.test(word)) {
          return word.toUpperCase()
        }
        return word.toLowerCase()
      }).join('')
    case 4:
      return str.toUpperCase()
    case 5:
      return str.toLowerCase()
    default:
      return str
  }
}

/* 过滤html代码(把<>转换) */
export function filterTag(str) {
  str = str.replace(/&/ig, '&amp;')
  str = str.replace(/</ig, '&lt;')
  str = str.replace(/>/ig, '&gt;')
  str = str.replace(' ', '&nbsp;')
  return str
}


/**
 * @returns {string}  生成不会重复的随机字符串
 */
export function createUniqueString() {
  const timestamp = +new Date() + ''
  const randomNum = parseInt((1 + Math.random()) * 65536) + ''
  return (+(randomNum + timestamp)).toString(32)
}
